Databases, Systems & Networks » MySQL Performance Tuning Scripts and Know |
您所在的位置:网站首页 › archlinux cron › Databases, Systems & Networks » MySQL Performance Tuning Scripts and Know |
This post is a “best-of” compilation of the tricks and scripts I have found to be the most effective over the past decade. I’d like to write a 50 page article but am limiting this to 1 page. For anyone serious about High Performance MySQL, I would highly highly recommend the fantastic book: “High Performance MySQL: Optimization, Backups, Replication, and more” – O’Reilly. I have spent many hours poring over it’s wisdom-filled pages and gaining much practical know-how. 聽MySQL Server SoftwareEach new MySQL server release contains ENORMOUS performance enhancements over previous versions. That is the absolute very first thing you should do: Upgrade your MySQL Server and Client libraries and keep them updated. There are several “flavors” of MySQL believe it or not.. Most people use the stock MySQL Server. I, along with WikiPedia, Arch-Linux, and others, use MariaDB. MariaDB is a greatly enhanced 100% compatible replacement for the stock MySQL Server. It is based on the excellent work by the Percona project. The percona flavor of MySQL is the other truly improved version of MySQL to consider. I personally have spent a couple years using Percona, then I upgraded from Percona to MariaDB (which has a lot of Percona juju built in) and am no longer thinking about which version to go with. MariaDB is the bomb-diggity. Lire aussi: Les diff茅rents moteurs de stockage de MySQL: InnoDBMySQL EngineInnoDB not MyISAM. InnoDB may be surpassed by in-development engines like TokuDB. I ONLY use InnoDB, for everything. Types of MySQL Servers to optimizeSeriously? Optimize EVERYTHING! The screenshots below are actual from one of my live servers. That server used to be 8GB RAM, but now as you may see in the screenshots, it is now only 2GB of RAM. I was able to save some serious $$$ by optimizing my server, without sacrificing speed… In fact I gained some speed in many instances. I’ve used these optimization techniques on monster servers with 32GB of ram and many slaves, and also on a machine with 1GB of ram (running arch-linux). MySQL Performance Tuning ScriptsThe first thing to understand and believe is that there is absolutely no substitute for having a professional tune your DB. I personally use 2 professionals to tune clients DBs… I optimize it first, then I optimize it again after both pros are finished. A DBA who knows MySQL optimization inside and out, percona/mariadb experience = “the best”.A Linux system admin GURU who can make sure the subtle and not-so-subtle settings and tweaks to the OS is geared for max performance.If you are just learning or doing it yourself, props to you! In that case, you should utilize ALL 4 of these tools. The one thing you need to do before running any of them is make sure your MySQL server has been online for at least a week without restarting, otherwise the results will mostly all be questionable. I especially like the Tuning-Primer shell script, and the phpMyAdmin Advisor (which is fairly new to phpMyAdmin – using 4.1-DEV-BETA). Lire aussi: Ten MySQL performance tuning settings after installationThe biggest areas to focus in on (IMHO) are: MEMORY/RAM, specifically the buffersSWAPACID – Do you need full ACID, or can you (likely) make some sacrifices there for speedtmp tables, tmpdir (use a tmpfs mounted dir)Thread/Connections – How many processes and threads should be runningopen_files / table_cache – May need to boost your /etc/security/limits.conf and your /etc/sysctl.confTuning-PrimerMySQL Tuning Primer Script – tuning-primer.sh – This script takes information from “SHOW STATUS LIKE…” and “SHOW VARIABLES LIKE…” then attempts to produce sane recommendations for tuning server variables. It is compatible with all versions of MySQL 3.23 and above. This tool is very similar to the tuning-primer tool. Nice and fast, and likely the most up-to-date tool. MySQLTuner: a script written in Perl that will assist you with your MySQL configuration and make recommendations for increased performance and stability. mysqlreport: makes a friendly report of important MySQL status values. mysqlreport transforms the values from SHOW STATUS into an easy-to-read report that provides an in-depth understanding of how well MySQL is running. mysqlreport is a better alternative (and practically the only alternative) to manually interpreting SHOW STATUS. The Guide To Understanding mysqlreportmysqlreport DocumentationFree online productivity tools for MySQL DBAs, SysAdmins and Developers Percona Configuration Wizard for MySQL Apply Percona best practices to achieve better MySQL database performance and avoid the time, complexity, and risk of customizing a my.cnf configuration on your own. Simply copy and paste the results of the Percona Configuration Wizard for MySQL into your my.cnf file. Lire aussi: Postfix + fail2ban = winTens of thousands of MySQL users have already used this tool to improve their MySQL performance Monitoring MySQLThe mysqladmin command is great and all, but these 3 tools are much more useful for the specialized task of monitoring MySQL. The most powerful is innotop, then mytop, and finally the phpMyAdmin Monitor is great for general big-picture monitoring. Also, make sure you understand and use slow query logging and mysqldumpslow as well. mytopmytop – a top clone for MySQL. innotop InnoDB Performance Monitoring with innotopGet me some Query LogsSource: Charles Torvalds4 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |